{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this notebook, you will implement the kinematic bicycle model. The model accepts velocity and steering rate inputs and steps through the bicycle kinematic equations. Once the model is implemented, you will provide a set of inputs to drive the bicycle in a figure 8 trajectory.\n",
    "\n",
    "The bicycle kinematics are governed by the following set of equations:\n",
    "\n",
    "\\begin{align*}\n",
    "\\dot{x}_c &= v \\cos{(\\theta + \\beta)} \\\\\n",
    "\\dot{y}_c &= v \\sin{(\\theta + \\beta)} \\\\\n",
    "\\dot{\\theta} &= \\frac{v \\cos{\\beta} \\tan{\\delta}}{L} \\\\\n",
    "\\dot{\\delta} &= \\omega \\\\\n",
    "\\beta &= \\tan^{-1}(\\frac{l_r \\tan{\\delta}}{L})\n",
    "\\end{align*}\n",
    "\n",
    "where the inputs are the bicycle speed $v$ and steering angle rate $\\omega$. The input can also directly be the steering angle $\\delta$ rather than its rate in the simplified case. The Python model will allow us both implementations.\n",
    "\n",
    "In order to create this model, it's a good idea to make use of Python class objects. This allows us to store the state variables as well as make functions for implementing the bicycle kinematics. \n",
    "\n",
    "The bicycle begins with zero initial conditions, has a maximum turning rate of 1.22 rad/s, a wheelbase length of 2m, and a length of 1.2m to its center of mass from the rear axle.\n",
    "\n",
    "From these conditions, we initialize the Python class as follows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [],
   "source": [
    "from notebook_grader import BicycleSolution, grade_bicycle\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.image as mpimg\n",
    "\n",
    "class Bicycle():\n",
    "    def __init__(self):\n",
    "        self.xc = 0\n",
    "        self.yc = 0\n",
    "        self.theta = 0\n",
    "        self.delta = 0\n",
    "        self.beta = 0\n",
    "        \n",
    "        self.L = 2\n",
    "        self.lr = 1.2\n",
    "        self.w_max = 1.22\n",
    "        \n",
    "        self.sample_time = 0.01\n",
    "        \n",
    "    def reset(self):\n",
    "        self.xc = 0\n",
    "        self.yc = 0\n",
    "        self.theta = 0\n",
    "        self.delta = 0\n",
    "        self.beta = 0"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A sample time is required for numerical integration when propagating the kinematics through time. This is set to 10 milliseconds. We also have a reset function which sets all the state variables back to 0. \n",
    "\n",
    "With this sample time, implement the kinematic model using the function $\\textit{step}$ defined in the next cell. The function should take speed + angular rate as inputs and update the state variables. Don't forget about the maximum turn rate on the bicycle!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Bicycle(Bicycle):\n",
    "    def step(self, v, w):\n",
    "        max(-self.w_max, min(w, self.w_max))\n",
    "        xc_dot = v * np.cos(self.beta + self.theta)\n",
    "        yc_dot = v * np.sin(self.beta + self.theta)\n",
    "        theta_dot = v * np.cos(self.beta) * np.tan(self.delta) / self.L\n",
    "        delta_dot = w\n",
    "        self.xc += xc_dot * self.sample_time\n",
    "        self.yc += yc_dot * self.sample_time\n",
    "        self.delta += delta_dot * self.sample_time\n",
    "        self.theta += theta_dot * self.sample_time\n",
    "        self.beta = np.arctan(self.lr * np.tan(self.delta) / self.L)\n",
    "        pass\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "With the model setup, we can now start giving bicycle inputs and producing trajectories. \n",
    "\n",
    "Suppose we want the model to travel a circle of radius 10 m in 20 seconds. Using the relationship between the radius of curvature and the steering angle, the desired steering angle can be computed.\n",
    "\n",
    "\\begin{align*}\n",
    "    \\tan{\\delta} &= \\frac{L}{r} \\\\\n",
    "    \\delta &= \\tan^{-1}(\\frac{L}{r}) \\\\\n",
    "           &= \\tan^{-1}(\\frac{2}{10}) \\\\\n",
    "           &= 0.1974\n",
    "\\end{align*}\n",
    "\n",
    "If the steering angle is directly set to 0.1974 using a simplied bicycled model, then the bicycle will travel in a circle without requiring any additional steering input. \n",
    "\n",
    "The desired speed can be computed from the circumference of the circle:\n",
    "\n",
    "\\begin{align*}\n",
    "    v &= \\frac{d}{t}\\\\\n",
    "     &= \\frac{2 \\pi 10}{20}\\\\\n",
    "     &= \\pi\n",
    "\\end{align*}\n",
    "\n",
    "We can now implement this in a loop to step through the model equations. We will also run our bicycle model solution along with your model to show you the expected trajectory. This will help you verify the correctness of your model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sample_time = 0.01\n",
    "time_end = 20\n",
    "model = Bicycle()\n",
    "solution_model = BicycleSolution()\n",
    "\n",
    "# set delta directly\n",
    "model.delta = np.arctan(2/10)\n",
    "solution_model.delta = np.arctan(2/10)\n",
    "\n",
    "t_data = np.arange(0,time_end,sample_time)\n",
    "x_data = np.zeros_like(t_data)\n",
    "y_data = np.zeros_like(t_data)\n",
    "x_solution = np.zeros_like(t_data)\n",
    "y_solution = np.zeros_like(t_data)\n",
    "\n",
    "for i in range(t_data.shape[0]):\n",
    "    x_data[i] = model.xc\n",
    "    y_data[i] = model.yc\n",
    "    model.step(np.pi, 0)\n",
    "    \n",
    "    x_solution[i] = solution_model.xc\n",
    "    y_solution[i] = solution_model.yc\n",
    "    solution_model.step(np.pi, 0)\n",
    "    \n",
    "    model.beta = 0\n",
    "    solution_model.beta=0\n",
    "    \n",
    "plt.axis('equal')\n",
    "plt.plot(x_data, y_data,label='Learner Model')\n",
    "plt.plot(x_solution, y_solution,label='Solution Model')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "The plot above shows the desired circle of 10m radius. The path is slightly offset which is caused by the sideslip effects due to $\\beta$. By forcing $\\beta = 0$ through uncommenting the last line in the loop, you can see that the offset disappears and the circle becomes centered at (0,10). \n",
    "\n",
    "However, in practice the steering angle cannot be directly set and must be changed through angular rate inputs $\\omega$. The cell below corrects for this and sets angular rate inputs to generate the same circle trajectory. The speed $v$ is still maintained at $\\pi$ m/s."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sample_time = 0.01\n",
    "time_end = 20\n",
    "model.reset()\n",
    "solution_model.reset()\n",
    "\n",
    "t_data = np.arange(0,time_end,sample_time)\n",
    "x_data = np.zeros_like(t_data)\n",
    "y_data = np.zeros_like(t_data)\n",
    "x_solution = np.zeros_like(t_data)\n",
    "y_solution = np.zeros_like(t_data)\n",
    "\n",
    "for i in range(t_data.shape[0]):\n",
    "    x_data[i] = model.xc\n",
    "    y_data[i] = model.yc\n",
    "    \n",
    "    if model.delta < np.arctan(2/10):\n",
    "        model.step(np.pi, model.w_max)\n",
    "    else:\n",
    "        model.step(np.pi, 0)\n",
    "        \n",
    "    x_solution[i] = solution_model.xc\n",
    "    y_solution[i] = solution_model.yc\n",
    "    \n",
    "    if solution_model.delta < np.arctan(2/10):\n",
    "        solution_model.step(np.pi, model.w_max)\n",
    "    else:\n",
    "        solution_model.step(np.pi, 0)\n",
    "    model.beta = 0\n",
    "    solution_model.beta=0\n",
    "\n",
    "plt.axis('equal')\n",
    "plt.plot(x_data, y_data,label='Learner Model')\n",
    "plt.plot(x_solution, y_solution,label='Solution Model')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here are some other example trajectories: a square path, a spiral path, and a wave path. Uncomment each section to view."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sample_time = 0.01\n",
    "time_end = 60\n",
    "model.reset()\n",
    "solution_model.reset()\n",
    "\n",
    "t_data = np.arange(0,time_end,sample_time)\n",
    "x_data = np.zeros_like(t_data)\n",
    "y_data = np.zeros_like(t_data)\n",
    "x_solution = np.zeros_like(t_data)\n",
    "y_solution = np.zeros_like(t_data)\n",
    "\n",
    "# maintain velocity at 4 m/s\n",
    "v_data = np.zeros_like(t_data)\n",
    "v_data[:] = 4 \n",
    "\n",
    "w_data = np.zeros_like(t_data)\n",
    "\n",
    "# ==================================\n",
    "#  Square Path: set w at corners only\n",
    "# ==================================\n",
    "w_data[670:670+100] = 0.753\n",
    "w_data[670+100:670+100*2] = -0.753\n",
    "w_data[2210:2210+100] = 0.753\n",
    "w_data[2210+100:2210+100*2] = -0.753\n",
    "w_data[3670:3670+100] = 0.753\n",
    "w_data[3670+100:3670+100*2] = -0.753\n",
    "w_data[5220:5220+100] = 0.753\n",
    "w_data[5220+100:5220+100*2] = -0.753\n",
    "\n",
    "# ==================================\n",
    "#  Spiral Path: high positive w, then small negative w\n",
    "# ==================================\n",
    "# w_data[:] = -1/100\n",
    "# w_data[0:100] = 1\n",
    "\n",
    "# ==================================\n",
    "#  Wave Path: square wave w input\n",
    "# ==================================\n",
    "# w_data[:] = 0\n",
    "# w_data[0:100] = 1\n",
    "# w_data[100:300] = -1\n",
    "# w_data[300:500] = 1\n",
    "# w_data[500:5700] = np.tile(w_data[100:500], 13)\n",
    "# w_data[5700:] = -1\n",
    "\n",
    "# ==================================\n",
    "#  Step through bicycle model\n",
    "# ==================================\n",
    "for i in range(t_data.shape[0]):\n",
    "    x_data[i] = model.xc\n",
    "    y_data[i] = model.yc\n",
    "    model.step(v_data[i], w_data[i])\n",
    "    \n",
    "    x_solution[i] = solution_model.xc\n",
    "    y_solution[i] = solution_model.yc\n",
    "    solution_model.step(v_data[i], w_data[i])\n",
    "#     model.beta = 0\n",
    "#     solution_model.beta=0\n",
    "    \n",
    "plt.axis('equal')\n",
    "plt.plot(x_data, y_data,label='Learner Model')\n",
    "plt.plot(x_solution, y_solution,label='Solution Model')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We would now like the bicycle to travel a figure eight trajectory. Both circles in the figure eight have a radius of 8m and the path should complete in 30 seconds. The path begins at the bottom of the left circle and is shown in the figure below:\n",
    "\n",
    "![title](figure8.png)\n",
    "\n",
    "Determine the speed and steering rate inputs required to produce such trajectory and implement in the cell below. Make sure to also save your inputs into the arrays v_data and w_data, these will be used to grade your solution. The cell below also plots the trajectory generated by your own model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xd8leX9//HXdc7J3jshe0DYCbIVBCeuOuoe1FnUamuXrW1ta38dttVW2347pEoV91asoCKVAgJCGGGFEBKy954n45zr90cComUEcnLunDuf5+ORR5LDybk/Odx5n+tc9zWU1hohhBCez2J0AUIIIVxDAl0IIUxCAl0IIUxCAl0IIUxCAl0IIUxCAl0IIUxCAl0IIUxCAl0IIUxCAl0IIUzC5s6DRUZG6pSUFHceUgghPN62bdvqtdZRJ7ufWwM9JSWFnJwcdx5SCCE8nlKqZDD3ky4XIYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCQl0IYQwCZvRBQghRh6tNa32Plo6e2np6qXV3kubvZdeh8apBz6c4ONlwd/bip+XjQAfK2H+3kQF+eDrZTX6VxiVJNCFGMXq2ro5UNPG/uo2CuvaqWjqoqK5i8rmLjp7HKf9uCF+XkQH+ZAQ5kd6VCBpUYGkRQWQGRNEWIC3C38DcTQJdCFGCXuvg9yyZnJKmthW0kRuWTMNHT1H/j3M34uEMH8yogI5e2wUcSG+hPp7EeLX/xHk64WXVWGxKCxKYVHQ3eeks8dBZ08fHd0Omjp6qG2zU9PaTU2rnbKmLjYWNtDd5zxynKRwf7ISQ8lKCGF6chhT4kOwWaX31xUk0IUwKa01B2vb+SS/lk/215FT0kivQwOQHhXAOeOjmRAXzPjYIMbFBBEV5DMsdTidmsqWLgrrOsiraiW3rJltxY28l1sJQJCvjblpEcwfG8mCcdEkRfgPSx2jgdJau+1gM2bM0Dk5OW47nhCjjdaa3RUtrNhZyao91VQ0dwEwPjaIBeOimJkSzhnJYYSPgG6P2lY7W4ob2VBQz/qC+iO1ThoTzMWTY7l4ShzpUYEGVzkyKKW2aa1nnPR+EuhCeL6yxk5e31bOip0VFDd04mVVnD02ivMmxLAwM4oxoX5Gl3hCWmtKGjr5OK+GVXuq2VbSBMDEuGCum5HAldPiCfU3/kXIKBLoQpicw6lZm1/LC5tLWHugDoC5aRFckT2GiybFEeLvZXCFp6+6xc4He6p4c3sFuyta8LZZWDQplsVzkpmZEoZSyugS3UoCXQiT6upx8FpOGf9cX0R5UxfRQT7cMDORG2YljfiW+OnYV9nKazllvL2jgpauXrISQ/n6/FQumhQ7ai6mSqALYTKt9l6e31TCsg2HaOjoYUZyGHfMS+WCiTF4jYJg6+px8Mb2cp5ZX0RxQycJYX7cd04G10xPMP3vL4E+yjidmh6Hk16Hkz6HptfpxKoUft5WfG1WLJbR9RbVTOy9DpZvKuavnxTS0tXLgnFR3HdOBrNSw40uzRAOp+bjvBr+traQ3LJmkiP8+fb5Y7k8Kx6rSc9zCXQTsfc6KKxrp6yxk/KmLsoaO6lo7qK+vYfmzh6au/pn853ov9LbaiHI10ZkoA+RQd5EBvoQG+JLSkQAKREBpEYGEBPsM+r6Jkcyp1Pzzs4K/vDRASqau1gwLooHF2UyOT7E6NJGBK01a/Jq+cPqA+RVtZIZE8TPvzKRMzMijS7N5STQPVRPn5PdFc1sK2lib2UreVWtFNZ14HB+/v8U5GMjPsyPqCAfQv29CfP3ItTPC19vK14WCzarwmZROJwae58Te6+Drl4HrV19NLR3U9/eTX17D9Utdnocn0/4CPSxMXFMMFPiQ5iaEMLUhFBSIvwl5A2wp6KFn7yzh9yyZqbEh/Cji8ebMqhcwenUrNxTxe8+2E9ZYxeXTInlx5dMICHMPOPZJdA9hMOpyS1vZm1+HVsONbCjtPnIrLq4EF8mxAUzIS6I8bHBpEYGkBjmT7CfzSUh63BqKpu7KG7ooLi+gwM17eyuaCGvqvVIDbHBvpyZHsGZGZGclRFBXIj5LrqNJO3dffzxowM8u/EQ4QHe/PiSCVyZHS9dZoNg73Xwz3VF/HXtQbSGB84fy5L5aaa4cOqyQFdKLQMuA2q11pMHbnsE+DpQN3C3H2utV57sYBLo/ey9Dtbm17J6Xy1r82tp6OjBomDSmBBmpoQzKzWMGSnhRAYOz8y9k+l1OCmoaWd7aRObihrYVNhA48AU8SnxISyaFMOiSbFkRAdK692FNhTU8+AbuVS32rl5dhIPXjjeo4ceGqWiuYtfvrePD/ZWMzUhhMevzWJcTJDRZQ2JKwP9bKAdWP6lQG/XWj9+KkWN5kB3ODWbixp4Z0cFq/ZU097dR4ifFwszozh3fDQLxkWN2IkTTqfmQG0ba/Pr+HBvNTtKm4H+6eNXT0/g6jMSiAn2NbhKz9XV4+B3H+zn2Y3FpEcF8Pi1WUxLCjO6LI/3/q4qfvruHtrtfTxw/ljuWZDusRdNXdrlopRKAf4tgX7qatvsvLKljJe3lFLVYifQx8bFk2O5clo8s1PDPfLtYHWLndX7qlmRW8nW4iYsCuaPjeKGmYlcMDHGI38no+yrbOWbL2+nsK6D289K4YcXjZelZ12oob2bn727l/d3V3FWRgRPXJ9NdJDnNT7cEei3Aa1ADvA9rXXTyR5nNAX6jtImnt1YzMrdVfQ6NPPHRnL9zETOnxBjqj/YQ/UdvLmtnDe3l1PVYic+1I/bzkzh+lmJBPtKd8GJvLGtnJ+8vZtQfy/+cG0288bKRc/hoLXm9ZxyfrZiD4E+Xjx5vec918Md6DFAPaCBXwJxWus7jvOzS4AlAElJSdNLSkoG+St4Hq01m4sa+ct/CthY2ECQj41rZiSweE4yaSZfZMjh1KzeV8OyTw+x5VAjAd5Wbp6TzN1npxFh0LWAkaq7z8Ev3tvHS5+VMjctgr/cNM2w6yWjSX51G/e9tJ3CunYeXJTJvQvSPeYa0LAG+mD/7cvM3ELfWFjPE6sPsLW4ichAH+4+O42bZicR4DP6VijeXd7C0xuKeC+3El8vK7eemcKS+WmysQH9XQBLnt/GtpIm7lmQzvcvHCddVG7U2dPHD97Yxb93VfHVM+J59KtT8LGN/HfMw91Cj9NaVw18/R1gttb6hpM9jhkD/WBtG4+u3M+a/bXEhfhyz4J0rp+ZaKpuldNVWNfOn9cUsCK3kgBvG/cuTOfOeamj9rkpqmvn9me3Ut1i54nrs7lkSpzRJY1KWmv+vOYgT3x8gOnJYTy1ePqIf4fkylEuLwMLgUigBvj5wPfZ9He5FAN3Hw74EzFToDd39vD4R/m8vKUMfy8r952bwW1npozasDqRgpo2Hvswn4/21ZAY7sdPLpnIokkxHvN21xVyihu5a3kOFqV4+tYZnCGjWAz3/q4qvvf6TsaE+LH8zlkjeiKSTCwaJlr3T8f+1b/zaO7q5ZbZSXzrvLHSTzwInx6s5/+9t4/8mjbmZUTym6umjIrdadYX1PH15TnEhfjx7O0zSY4IMLokMSCnuJHbn91KoI+N5++cTUb0yLzWJYE+DEobOvnJO7tZX1BPVmIoj141hYljgo0uy6P0OZy8tKWU33+Qj8Op+f6iTG47M8VjxwefzH/213DPC9tJiwzghbtmj/i39qPRvspWvrZsC06tWX7HrBG5Vo4EugsdHvb0yHt7sSjFg4syuWVOsmlDyB2qWrr4ydt7+M/+WqYlhfLH67JJjTRXy/XDvdXc/9J2xscG8/yds0bsxDEBxfUd3Pz0Z3T09PHKkjmMjx1ZDTUJdBdp6ujhR2/t5oO91cxJC+eP12WbchMBI2itWZFbyc/e3Uufw8mvrprMVdMSjC7LJdYX1HHHs1uZHB/Cc3fMkjH5HqC0oZPrntpEn9PJK0vmjqjul8EGuoyXOoFtJU1c/Kf1rNlfw48uHs9Ld82RMHchpRRXZMez6oH5TBoTwndezeW7r+2ko7vP6NKGZHtpE0uWbyMjOohnb5cw9xRJEf68+PXZgOLmpzdT1thpdEmnTAL9GLTWPL+5hBuWbsLHy8Lb3ziLuxeky4p3w2RMqB8vfX02D5w3lnd2VHDlXz+lpKHD6LJOy4GaNm7/11aig3147o6ZhPhJmHuS9KhAXrxrNvZeJ7f9awstnb1Gl3RKJNC/xN7r4Adv7OKn7+xhXkYkK+6bNyIvkpiNzWrhOxeM44U7Z1PX3s3l//cpnx6sN7qsU1Lf3s3t/9qKj83CC3fO9sg1QwRkxgaxdPF0yhq7uPuFHLr7HEaXNGgS6Edp6ezla8u28Pq2cr51bgbP3DpTli91szMHXkRjgn342rItLN9UbHRJg9Ld5+DeF7ZR397N07fOIDHc/MMxzWx2WgSPXTuVzUWNPPTmbtx5rXEoJNAHVDR3cfU/NrKjtIk/3ZDNdy/MlC4WgyRF+PPWN87inMxofvbuXh77cP+I/oPSWvPw23vYWtzE49dmMTUh1OiShAtckR3Pdy8Yx9s7Klj2abHR5QyKBDqwv7qVq/76KTWtdp67YxZXZMcbXdKoF+hj46nF07lxVhJ//aSQH721m76jtssbSV7aUnrkXd1XssYYXY5woW+em8GFE2N4dGUeW4sbjS7npEZ9oO+rbOXGpZtRCt6450zOTPesZTXNzGpR/OaqyXzz3Axe2VrG/S/toKdvZIV6XlUrv3hvH2ePi+Lb548zuhzhYkopHr8ui4QwP+57cTt1bd1Gl3RCozrQ91S0cNPTm/HzsvLa3XPJjPXsbarMSCnF9y7M5KeXTeSDvdU88MoOekdIS72ju4/7XtpOqJ8Xf7wuS7roTCrY14u/3zKdVnsv331t54ju/hu1gb63soWb/rmZAG8bryyZK+trjHB3zkvl4UsnsGpPNd95deeI6H55ZMVeius7+NMNsp652U2IC+bhSyeyvqCe5zeP3D0dRt9i3fRP87112RYCfWy8smSOjEjwEHfNT8Ph1Dy6aj/eNgt/uDbLsBUbP8mv5fVt5dy7MJ256RGG1CDc6+bZSazeV8NvVuZxVkYk6SNw05pR10KvbbPztWVbcDg1y++cLWHuYe5ekM53LxjHW9srePyjfENqaLX38uO3djM2OpBvnz/WkBqE+yml+P01U/H1svK913JxOEde18uoCvT27j5uW7aVurZult02c0St1SAG75vnZhwZ/fLiZ+5/+/voyjxqWu08dm2WR+x2I1wnJtiXX1w+iZ1lzbxkwLl3MqMm0J1OzXde3Ul+TRt/v+UMpskGAx5LKcUvr5jEueOj+ek7e/hkf63bjr29tImXt5Rx1/w0shNlvPlodHnWGM7KiOD3H+ZT22Y3upwvGDWB/uSaAlbvq+Enl0xgYWa00eWIIbJZLfzlxmlMiAvmW6/soLh++Nd+cTo1j6zYS0ywDw+cJ10to1V/g2Iy3b1OfvN+ntHlfMGoCPRVu6v485oCrp2ewO1npRhdjnCRAB8b/7hlOlaL4u7nt9HZM7yrNL6+rYxd5S38+JIJo3Lzb/G5tKhA7lmQxjs7K9lWMnImHJk+0EsaOnjwjV1MSwrlV1dNHlX7WI4GieH+/PmGaRyobeOHw7jmRnt3H7//IJ+ZKWFcLrNBBXDPwnSignx4dOXIWZrC1IHe0+fkWy/vwKLgLzdOkwtYJnX2uCi+f2Em7+VW8npO+bAc49lPD9HQ0cPDl06URoEAwN/bxrfPH0tOSROr99UYXQ5g8kD/w+p8cstb+N3VU0f0jt5i6O5dkM7ctAgeeW+vy/vTWzp7eWpdERdMjCFLLoSKo1w/I5G0qAB+/2H+iBjGaNpA31zUwFP/LeKm2UlcPCXO6HLEMLNYFH+4LgubRfHtV3e6dHmAf64vos3ex3cvkLVaxBfZrBa+f2EmB2vbWbm7yuhyzBno9l4HD725i6Rwfx6+dILR5Qg3GRPqx6+vmsLOsmaWrityyWO22nt5dmMxl06JY0LcyNo4WIwMF02KJT0qgL+tLTS8L92Ugf7E6gMUN3Ty26un4O8toxFGk69kjeGSKbH8eU2BS7peXtlSSnt3H/cuTHdBdcKMLBbFPQvSyatqZe2BOmNrMfTow2B3eQv/XF/EjbMSZSncUernX5mEl9XCw+/sGVKLqdfh5F+fFjM3LUK2IRQndEV2PGNCfPn72kJD6zBVoGut+fmKPYQH+PDQxdLVMlrFBPvyg4sy2XCwnnd3Vp7246zcXUVVi52vn53qwuqEGXnbLNx6ZgpbDjWSX91mWB2mCvQVuZVsL23mB4syZbf1Ue7m2clkJYTw21X76eo5vU1+X9hcQlpkAAvHycxicXLXzkjE22YxdI0X0wR6V4+D367az+T4YK6ZnmB0OcJgVoviJ5dOpLrVzjMbTv0CaWFdO1uLm7h+ZqJsXCEGJTzAm0unxPHW9go6uod31vLxmCbQn9lQRFWLnZ9dNkn+AAUAs1LDuXBiDH9fW3jKW4e9llOG1aK46gzZX1YM3s2zk2jr7uP9XcYMYTRFoLfae1m6rojzJ0QzKzXc6HLECPLQxePp7nPyf/8pGPTP9DmcvLmtgnPHRxMd5DuM1QmzmZ4cRnKEPytyT//azVCYItD/taGYVnufbNIr/kdaVCDXTE/g5a1l1LYObqnTzUWN1Ld3c7W0zsUpUkpxedYYNhbWG7K0rscHektXL09v6J+WLUPLxLHcuzCdPoeTf64fXF/6qj1V+HlZWSAXQ8Vp+ErWGJwaVu2udvuxPT7QX/yshDZ7n6xPLY4rOSKAK7LjeWFzKY0dPSe8r8Op+XBvDeeMj8LPWxZzE6duXEwQ42ODeN+ApQA8OtB7HU6WbyxhXkaktM7FCd13TjpdvQ6Wbyo+4f22lzZR397NRZNl/R9x+s6bEM22kiZaunrdelyPDvSVu6uobrVzx7wUo0sRI1xGdBALxkXx0melJ1y467/5dVgtinMyo9xYnTCbczKjcTg1Gwrq3Xpcjw70ZZ8WkyoTP8QgfW1uMrVt3Xy09/hrV284WE92YihBvjIxTZy+7MRQQvy8WJvvvv1uwYMDfV9lK7llzXxtbrKMOxeDsjAzmoQwv+N2u7R09bKrvJmzMmQNIDE0NquFeWMjWVdQ59YVGD020N/cXo6XVXFltgwtE4NjtShunp3MZ4caj7kS4+aiBpwa5kmgCxeYnRpOTWs35U1dbjumRwZ6r8PJOzsqOH9CDGEB3kaXIzzIldPGoBS8s7Pif/5te0kT3lYLWYlygV0M3fTkMKD/Qru7nDTQlVLLlFK1Sqk9R90WrpRarZQqGPgcNrxlftHa/DoaOnpkzRZxyuJC/JidGs67Oyv/561wbnkzE+KCZO9Z4RKZMUEEeFvJKR5BgQ48C1z0pdseAtZorccCawa+d5uVu6sI9ffi7HEyEkGcuqumxXOovoPc8pYjtzmcmt3lLbJnqHAZm9VCdlIoO8pGUKBrrdcBjV+6+QrguYGvnwOudHFdx9XrcLImr4bzxsfgZfXIHiNhsIsmx2GzKD7Y8/lMvqK6djp6HExNkEAXrjMhNpiCmna3bSB9uokYo7WuAhj4fNxxg0qpJUqpHKVUTl3d0Ldn+qyokVZ7H4smxQz5scToFOLnxazUcP6z//Phi/k1/ZsSTJR9Q4ULZcYG0d3npLSx0y3HG/YmrtZ6qdZ6htZ6RlTU0LtIPtpXja+XhfljpbtFnL5zx0dzoKadsoE/tKK6/lEvqZEBRpYlTCYzNgiA/OpWtxzvdAO9RikVBzDw2W2j5zcU1DM3LULW2RBDct6E/nd4/9nff+oW1bUTH+on55VwqYzoQAAKatrdcrzTDfQVwK0DX98KvOuack6sptVOUX2HbP4shiw1MoCkcH8+Pdg/NftQfYe0zoXL+XvbiAryoaLZPWPRBzNs8WVgE5CplCpXSt0J/Ba4QClVAFww8P2w21TYAMDc9Ah3HE6Y3MyUcHJKmtBaU97URWK4v9ElCRMaE+rntkC3newOWusbj/NP57m4lpPaVNhAiJ+XXLgSLjErNYw3t5ezv7qNho4eYoJ9jC5JmFB8qC/51W1uOZZHjfvbWdbMGUmhsnaLcImZKf3bFa4aWLdatpsTwyEuxI/KZvfsXuQxgd7V46Cgto0psu65cJHUyADC/L34OK//wmh0kLTQheuFB3jT1evA3usY9mN5TKDvq2rFqZGNLITLKKWYEBfMvqr+IWVhAbJkrnC9YN/+nu02e9+wH8tjAn1PRf807SkJEujCdcbHfn49xtsqQxaF6wX79TcUWu3Dv3uRxwT6wdp2gn1txAZLP6dwnQlxQUe+9rLJtRnhesEDm6W0umE7Oo8J9OKG/nHCSskfnXCdcTFHBbqsDSSGgbet/7zqdQz/ei4ecwYXN3SQHCETP4RrxYf5HfnaWwJdDIPDbVCnG3Yu8ogzuKfPSUVTFykyk0+4WMRRG6RIC10MB8tAokugD6hptePUkBDqd/I7C3EKju7C87JKd55wvSOB7nTDsYb/EENX394NQGSQbDcnho+XzSP+HISH6XX0J7k7GgwecQY3tPcAEBEgEz/E8JE+dDEcOnv6JxQF+Jx0pZUh84gz+PMWugS6cD1ZSUIMp86e/glF7lia2SMCvWVg/GaIn8zkE64XNdBQqGl1z3obYnTp6B5ooXtLCx0Ae29/H5Sv9HGKYRAZ2B/o7lpASYwuTZ39XcbuaJB6REJ29zmwWRQ26eMUwyB8YOhipZvWrBajS11bN0G+NulyOcze68TXS9bZEMPjcKC7axMCMbrUtNqJcdOSJR4R6H1OJzYZIyyGiXNgvoe00MVw6A909wzo8IhAt1ksONywDoIYnboGRiFIC10Mh/KmLuJC3DMp0iMC3cuq6HG4YZqVGJXqB+Y5FDd0GFyJMJtWey+1bd2kRwW65XgeEeg2q6LPKS10MTwOz3Moa+w6MmZYCFcoqutvJKRHuWcdKo8IdB+bFYdTH5lCK4QrNbT3kBTuD0BBTbvB1QgzKaztP5/So6WFfsTh8ZvNncO/QLwYXdrsvXT1OjgzPQKAAzXu2Z1djA75NW142yxHGgzDzSMCPWxgWFnzwAB9IVylpKETgHljI/Hzsh7Z6lAIV9hZ2sykMcFuW5rZMwLdv7+F3iQtdOFihy+EpkcFkpUYwvbSZoMrEmbR53Cyu6KFrIRQtx3TQwK9v4Xe2NFtcCXCbIrr+wM9OcKf6clh7KtqlQujwiUKatvp6nWQnSiB/gUJA9uElTfJOGHhWkX1HcQE++DvbeOMpDAcTs2ucul2EUO3tbgRgGlJEuhfEOLnRZCvjbLGTqNLESazt6KVCXHBAExPDkMp2FTYYHBVwgzWF9STEObntgui4CGBrpQiMcyfUgl04UJdPQ4KatuYEh8CQKi/N1kJofz3QJ3BlQlP1+dwsrmwgfljI7+wzeFw84hAB0gK96dEAl24UF51K04NkwcCHWBhZhS55c00dciIKnH6csubaevuY15GlFuP6zGBPi4mkOL6Duy9DqNLESaxq6x/RMuUowJ9wbgotIZ1BdJKF6fvP/trsVoUZ2VEuPW4HhPoE8cE49SQXy0TP4RrbC5qJD7UjzGhny+cNDUhlMhAbz7aV2NgZcKTaa1ZubuauWkRhPq7d2N7jwn0wxeu8qpaDa5EmIHTqdl8qOHIDNHDrBbFxZPj+E9erQxfFKclv6aNQ/UdXDQ51u3H9phATwzzJ9DHxp5KGVImhi6vupXmzl7OPMZb4sumxtHV6+DjvFoDKhOebuXuapSCRZMk0I/LYlFMSwolp7jJ6FKECXx6sB6AuWmR//NvM1PCiQn2YcXOSneXJTyc06l5Z0cFc1Ijjmw+7k4eE+gAs1LCya9pkzVdxJCt3lfDhLhgYkP+d2swi0VxedYY1ubXUtsmG0eLwdtc1EBpYyfXz0w05PieFeip4WiNtNLFkNS1dZNT0sSiSTHHvc8Ns5Loc2pezyl3Y2XC072aU0awr82Q/nPwsEDPSgzF22ZhU5HM5BOn7+O8GrQ+cR9nelQgc9MieHlLKQ7ZXEUMQnNnD6v2VHPVtHjDNrX3qED39bIyJy2CT/bLxSpx+lbtqSYx3I/xsUEnvN/Nc5Iob+pincwcFYPw4mel9PQ5uXF2kmE1DCnQlVLFSqndSqmdSqkcVxV1IueNj6aovoOiOtlZRpy66hY7GwrquDI7/qRTsi+cGEtssC9L1xW5qTrhqbr7HDy7sZizx0UxPjbYsDpc0UI/R2udrbWe4YLHOqnzJkQDsEaGlInT8NaOcpwarj4j4aT39bZZuGt+KpuKGthRKtdtxPG9u7OSurZuvj4/1dA6PKrLBSAhzJ/xsUF8tK/a6FKEh9Fa88a2cmalhJMSObhNe2+YlUSInxf/+G/hMFcnPJXDqVm6rojxsUHMy/jfYbDuNNRA18BHSqltSqklrihoMC6bGsfW4ibKm2SxLjF4Ww41UlTXwTXTT946PyzQx8atc5P5cG8N+6tllrL4XytyKzhY287952a4dWXFYxlqoJ+ltT4DuBi4Tyl19pfvoJRaopTKUUrl1NW55uLSFdnxQP/bHCEG61+fFhPq78VXssac0s/dMS+VYF8bj32QP0yVCU/V63DyxOoCJsQFc8nkOKPLGVqga60rBz7XAm8Ds45xn6Va6xla6xlRUa5ZSjIx3J+ZKWG8vaMCrWVImTi5ssZOPtpXzU2zkvDzPrUhZaH+3ty7MIM1+2vZcqhxmCoUnuj1nHJKGzt5cNE4LBZjW+cwhEBXSgUopYIOfw1cCOxxVWEnc+W0eA7WtrOzTDb1FSf37MZiLErxtbkpp/Xzt52ZQkywD79dlSeNCAFAe3cfT358gDOSQjknM9rocoChtdBjgA1KqVxgC/C+1voD15R1cldkxxPoY2P5phJ3HVJ4qIb2bl7eUsplU+OOOdV/MPy8rXz3gnFsL213cMT6AAAVfklEQVRmRa509Qn4y5oCatu6+dlXJhned37YaQe61rpIa5018DFJa/1rVxZ2MoE+Nq4+I573d1VR19btzkMLD7N0fRH2Xgf3nzt2SI9zzfREshJD+eW/82i197qoOuGJDta288yGQ1w3I4HsRPdtAn0yHjds8WiL56bQ43Dy6tZSo0sRI1R9ezfLN5ZwedYYMqIDh/RYVoviV1dMpqGjmz9+dMBFFQpPo7XmF+/txc/byg8uGm90OV/g0YGeER3I/LGRPLuxRLamE8f097WFdPc5+NZ5Q2udHzYlIYTFc5JZvqmYXLl+Myq9nlPO+oJ6HlyUSWSg+5fIPRGPDnSA+87JoL69m1e2SCtdfNGh+g6WbyrmmukJpEUNrXV+tO9dmElMsC/ffW2nNCRGmcrmLn75733MTg3nltnJRpfzPzw+0OekRTArJZx//LeI7j754xKf+/X7+/CxWfn+okyXPm6Inxe/v2YqhXUd/F7Gpo8aWmt+9NZu+pyax67JGhHDFL/M4wMd4JvnZVDdape1q8UR6w7U8XFeLfedk0F00OmNbDmR+WOjuHVuMss+PcTGwnqXP74YeZ7bWMx/D9Tx0MXjSYrwN7qcYzJFoM/LiGRGchh/WlNAR7ds7Dva2XsdPPLeXpLC/bljXsqwHeehiyeQFhnAA6/slJ2NTG5XeTO/XpnHeeOj+drckdfVcpgpAl0pxY8vnUBdWzdPySJKo96f1xRQVNfBr66cjI9t+DYa8PO28rdbzqDN3su3Xt5Bn8M5bMcSxmnp6uW+l7YTFejD49dmjZgx58diikAHOCMpjMumxrF0fRFVLV1GlyMMsqeihafWFXHN9ATOHueapSZOZHxsML++cgqbixr5w2oZymg2Tqfm+6/nUtls5y83TSMswNvokk7INIEO8MOLxuN0wm9X7Te6FGGAnj4nP3hjF2H+3jx86QS3Hffq6QncOCuJv68tlFmkJvPYR/ms3lfDw5dOYHpyuNHlnJSpAj0x3J97Fqbz7s5K/ivbho06j324n31Vrfz6qsmE+ru3JfXI5ROZlRLO91/PJadYFvAygze3lfP3tYXcNDuJ285MMbqcQTFVoAN8Y2E6aZEBPPzObrp6ZBjjaPFJfi3/XH+IxXOST7j583DxsVl5avF04kP9+PryHIrrO9xeg3CdzUUN/Oit3ZyZHsEvLh85a7WcjOkC3dfLym++OoWyxi6e/Fj6NEeD2lY7338tl/GxQfzEjV0tXxYW4M2y22aigVv/tYXaVhn54ol2lTdz13M5JEX487ebz8DL6jkx6TmVnoI5aRHcMDORpeuL+KyowehyxDDq7nNw74vb6exx8H83TcPXa/hGtQxGamQAy26bSV1bNzc//RkN7bJwnCc5WNvGrcu2EOLnxfN3znJ7191QmTLQAR6+bCJJ4f5897VcWrpkZTwz0lrzs3f2sq2kicevzSIjOsjokoD+EVfP3DqT0sZOvrZsi5x/HuJQfQe3PL0Fq8XCi3fNJi7Ez+iSTplpAz3Qx8aT12dT3Wrnp++4bd8N4UbPbSzm1ZwyvnluBpdONX77r6PNTY/gqcXTOVDTxi1Pf0ZjR4/RJYkTKKhp47qnNtHjcPL8nbMGvYn4SGPaQAeYlhTGA+eNZUVuJS99Jot3mcnqfTX88v08zp8Qw3fOH2d0Oce0MDP6SKhf99QmqlukT30k2lvZwvVLNwPw6pI5TIgLNrii02fqQIf+1Rjnj43k5yv2sL20yehyhAtsOdTI/S9tZ3J8CH+6IXtELpJ02LnjY3jujllUt9i55h8bZfTLCLO5qIEbl27G12bhtbvnMjZmZHTbnS7TB7rVovjLjdOIDfHl3he2yZobHi6vqpU7n9tKfJgf/7ptJgE+NqNLOqk5aRG8/PU5dHT38dW/b5SNpkeIt7aXs/iZz4gK8uHVu+eS6qHdLEczfaBD/67tT90yg5auXu55fpusYe2hDtS0sfiZLQR423j+ztmEj/Bp2EebkhDCW984i1A/L25+ejNvbJOVQY2itebJjw/w3ddymZkSzlv3nkVi+MhcPfFUjYpAB5g4JpgnrstmR1kz33p5Bw6n7NzuSfZXt3Lj0s1YFLxw12ziQz1vBEJqZABvf+MsZqX2zyj9zco8WdDLzVrtvdz9/Dae/LiAa6Yn8Oztswjx9zK6LJcZNYEOcPGUOH522UQ+2lfDL97bi9YS6p5gX2V/mHtZLbx699wh7w1qpBB/L569fRaL5ySzdF0RN/5zsywm5yb7Klu5/C8b+M/+Wn562UQeu2Yq3jZzRaC5fptBuP2sVJacncbyTSX8ec1Bo8sRJ7GxsJ7rl27C18vKK0vmmKKf08tq4ZdXTuZPN2Szt7KVS/+8gbX5tUaXZVpaa178rISr/vYpXb0OXlkyhzvnpXrMdP5TMfKvKA2Dhy4aT0N7D098fACbVXHfORlGlySO4d2dFXz/9VxSIgJ49o5ZHtnNciJXZMczOT6E+17czm3/2sriOck8dPF4j7jQ6ylqW+388M1dfJJfx7yMSJ64PpuooJG1sbMrjcozx2JR/P6aqTi15rEP87Eoxb0L040uSwzQWvO3tYU89mE+s1PDWbp4hqn6OY+WHhXIO/edxWMf5rPs00OsPVDLY9dkMSctwujSPJrWmn/vquKn7+7B3uvgF5dPYvGc5BE9xNUVRmWgQ/9wxsevzcLh1Pzug/309Dn51nkZpnwb5kk6uvv4wRu7eH93FV/JGsPj104d1l2HRgJfLys/vWwiiybF8uAbudywdDM3zkriwUWZHjWSZ6Qoru/gZyv2su5AHVkJIfzx+mzSozz3usupGLWBDv2h/sfrsrBZFU98fID69m4euXwSVpO/io9Uh+o7WLI8h8K6dn508XiWnJ02ql5gZ6WGs+qB+fzhowM8u7GYVXuq+P6Fmdw4K0nOyUGw9zr4x38L+dvaQrytFn7+lYksnpOMzYNWSxwq5c6RHjNmzNA5OTluO95gaa357ar9PLWuiEumxPLE9dmmbxWONO/urODht/dgsyr+cuMZzBsbaXRJhsqvbuPnK/awuaiRiXHB/PDi8Zw9NnJUvcANlsOpeXN7OU+sPkBVi52vZI3hp5dOIDrY1+jSXEYptU1rPeOk95NA/9w/1xXx65V5nJEUyj9umW6qE2Kkaunq5afv7GFFbiXTk8N48vps00zyGCqtNe/tquJ3q/ZT0dzFrNRwfrAokxkpI38rNHfQWvNxXi2PfbifAzXtZCWG8tBF45mbbr7rDxLop2nl7iq+91ouIX5ePLV4OlmJoUaXZFobCur54Zu7qG618+3zxnLvwvRR9fZ4sLr7HLy6tYw/rzlIfXs388dGcvfZ6ZyVETEqW+x9Difv767i72sL2V/dRlpkAA8uyuSiybGmfT4k0IdgX2UrX1+eQ117N7+6cjLXTk8w7YlihIb2bn71fh5v76ggLTKAP16fTba8cJ5UZ08fyzeV8PT6Q9S3dzMxLpglZ6dx6dQ4j9pV53S12nt5e3sFz2w4RGljJxnRgdy7IJ3Ls8eY/veXQB+ihvZu7n9pB5uKGrgiewy/unIyQb7mHDrnLg6n5o1tZTy6aj8d3X3cuyCdb5yTYfguQ57G3uvg3Z0VLF1XRGFdB5GB3lw9PYHrZySSZsLRHLvLW3jxsxLe3VlJV6+D7MRQ7l2YzgUTYkw/DPEwCXQXcDg1f/vkIE+uKSA+1I8/3ZDNtKQwo8vySBsK6vn1yjzyqlqZmRLGb66a4vFLlRrN6dT890AdL28pZc3+WhxOzazUcK7IHsOiSbFEBnruBJrShk7e21XJe7mV7K9uw8/LyhXZY7hpdhJTE0bfuzkJdBfKKW7kgVd2Ut1q5675qXzn/HHSqhykvZUtPPZhPmvz60gI8+MHF43nsilxo6Zl5S61rXbe2F7OGznlFNV3YFH9y/ZePDmWhZnRI/5Cs9aafVWtrM2v46N9NeSWNQMwPTmMK7LHcOW0eIJH8TtkCXQXa+nq5Tfv5/FqThmpkQE8+tUpMpvvBHaWNfN//yng47xagnxtfPPcDG49M0WGgw4zrTX7q9tYubuK93dXUVTXv6FGSoQ/88dGMW9sJGckhRk+/V1rTWljJ9tKmthU2MB/D9RR29a/ofbk+GAumzqGy6bGkRA2sl+I3EUCfZh8erCeH721m9LGTq4+I4EfXJRJjAxvBPq7ANYV1PHMhkOsL6gn1N+LO85K5dYzUwjxG72tK6NorSmsa2d9QT3rC+rZXNRAZ0//XgDxoX5kJ4WSlRDCuJgg0qMCiQ/1G5Z3Tg6npqShgwM1bRyoaWdPRQvbS5uob+/fZzXY18b8cVEsGBfFwnFRMlz4GCTQh1FXj4M/rSlg2YZD2KyKbyxM5675aaO2G6alq5fXc8p4YXMJxQ2dRAb6cNf8VG6Zk0ygLDQ1YvT0OdlV3szOsmZ2lDWzs7SZiubPl+719bKQGhlIfKgvMcGHP3wI9vUiwMdGgI8Vf28bVotCa3BqjVNr7L1OWu29tNn7aO3qpaG9h6qWLiqau6hs7qK8qYvuvv5135WClIgApiWFMj05jBnJ4WREB8pM2JOQQHeDkoYOHl25nw/2VjMmxJf7zx3LNdMTTLfG8rH0OpysO1DH2zsq+DivBnuvkxnJYSyem8zFk+NGxXNgBg3t3RTWdXCwtp3CunaK6tqparFT29ZNY0fPaT9uVJAPY0L9GBPiS2K4P+NighgXE0hGdCD+3vIif6ok0N1oY2E9v/sgn9yyZuJD/bj/3AyumZ5gurGx9l4HmwobWJ1Xw6rdVTR19hLm78WlU+O4YWYSk+NDjC5RuFB3n4O6tm7a7H109vTR0e2go7sPh9ZYlKK/Ua3w9bIQ7OdFsK8Xwb42Qvy95FqJi7kl0JVSFwF/AqzA01rr357o/mYNdOjvr1x7oI4nVx8gt7yFuBBfFs9N5saZSYR56Ip5WmsO1rbz2aFG1ubX8enBerp6Hfh5WTl3QjRfnRbP/LFR0hoXYpgNe6ArpazAAeACoBzYCtyotd53vJ8xc6AfdjjYn15fxKcHG/D1snDVtARumZPEpDEjuwVb19bN/upW9lW2sq2kiZySpiNvu+ND/ThvQjTnjo9mTlrEqL1eIIQRBhvoQ+nMmgUc1FoXDRzwFeAK4LiBPhoopTgnM5pzMqPZX93Ks58W89b2cl7eUsr42CCumZ7AldPi3T7po8/hpNXeR1NnD82dPZQ3dQ18dFLa2El+dTv17d1H7p8U7s+546OZlRLOrNRwkiP8ZfkDIUa4obTQrwEu0lrfNfD9YmC21vr+4/3MaGihH0tzZw/v5VbyxvYKcsuasVoUc9LCuXBiLBdMjGHMELdWO1jbzr0vbMPh1PQ5NY6Bj/6vnfQ5NG3dfcf82YgAbxLC/cmICmRCXBAT44IZHxcsGysIMYK4o4V+rOba/7w6KKWWAEsAkpKShnA4zxXq783iuSksnpvCwdo23tpewYd7q/n5ir38fMVepsSHMG9sJHPTIpiREnbKowB8vSyMjQnEarFgVWC1WLBZFFarwqoUNqsi2NeLMH8vQv29CfX3YkyoHwlhfjLiQAgTGUoLfS7wiNZ60cD3PwLQWj96vJ8ZrS304zlY287qfTWsyathZ1kzfU6NzaLISgwlKyGUKQnBTB4TQlqUjNMVYjRzx0VRG/0XRc8DKui/KHqT1nrv8X5GAv34Orr7yBmYBr3lUAP7qlqx9/ZPxvDzspISGUBKhP+Rz9HBvkQG+BAR6E1EoLcMExPCxIa9y0Vr3aeUuh/4kP5hi8tOFObixAJ8bCwYmP4M/RcxC+s62FPRwt7KVoobOsivaePjvBp6Hf/7IuzrZeGNe86UseBCjGJD6kDVWq8EVrqoFnEUm9VCZmwQmbFBXD3989sdTk1lcxd17d00tPdQ395NQ3s3rfY+og1ecEkIYSy5IuZhrBZFYrj/iF8OVQjhfjLFTwghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEJprd13MKXqgBK3HfDURQL1RhcxBJ5cv9RuHE+uf7TUnqy1jjrZndwa6COdUipHaz3D6DpOlyfXL7Ubx5Prl9q/SLpchBDCJCTQhRDCJCTQv2ip0QUMkSfXL7Ubx5Prl9qPIn3oQghhEtJCF0IIk5BA/xKl1CNKqQql1M6Bj0uMrulklFIXKaXylVIHlVIPGV3PqVJKFSuldg883zlG13MiSqllSqlapdSeo24LV0qtVkoVDHwOM7LG4zlO7R5xviulEpVSnyil8pRSe5VSDwzc7inP/fHqd+nzL10uX6KUegRo11o/bnQtg6GUsgIHgAuAcmArcKPWep+hhZ0CpVQxMENrPeLHEyulzgbageVa68kDt/0eaNRa/3bgBTVMa/1DI+s8luPU/ggecL4rpeKAOK31dqVUELANuBK4Dc947o9X/3W48PmXFrrnmwUc1FoXaa17gFeAKwyuybS01uuAxi/dfAXw3MDXz9H/hzriHKd2j6C1rtJabx/4ug3IA+LxnOf+ePW7lAT6sd2vlNo18BZ1RL6FO0o8UHbU9+UMw4kyzDTwkVJqm1JqidHFnIYYrXUV9P/hAtEG13OqPOl8RymVAkwDPsMDn/sv1Q8ufP5HZaArpT5WSu05xscVwN+BdCAbqAL+YGixJ6eOcZun9aOdpbU+A7gYuG+ga0C4h0ed70qpQOBN4Nta61aj6zlVx6jfpc+/bcgVeiCt9fmDuZ9S6p/Av4e5nKEqBxKP+j4BqDSoltOita4c+FyrlHqb/m6kdcZWdUpqlFJxWuuqgb7SWqMLGiytdc3hr0f6+a6U8qI/DF/UWr81cLPHPPfHqt/Vz/+obKGfyMBJcdhVwJ7j3XeE2AqMVUqlKqW8gRuAFQbXNGhKqYCBi0QopQKACxn5z/mXrQBuHfj6VuBdA2s5JZ5yviulFPAMkKe1/uNR/+QRz/3x6nf18y+jXL5EKfU8/W9/NFAM3H24j26kGhjq9CRgBZZprX9tcEmDppRKA94e+NYGvDSS61dKvQwspH+lvBrg58A7wGtAElAKXKu1HnEXH49T+0I84HxXSs0D1gO7AefAzT+mvx/aE57749V/Iy58/iXQhRDCJKTLRQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTEICXQghTOL/A1XsshZEmBftAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sample_time = 0.01\n",
    "time_end = 30\n",
    "model.reset()\n",
    "solution_model.reset()\n",
    "t_data = np.arange(0,time_end,sample_time)\n",
    "x_data = np.zeros_like(t_data)\n",
    "y_data = np.zeros_like(t_data)\n",
    "v_data = np.zeros_like(t_data)\n",
    "w_data = np.zeros_like(t_data)\n",
    "radius = 8\n",
    "ref_delta = np.arctan(model.L / radius)\n",
    "v_data[:] = 4 * np.pi * radius / time_end\n",
    "w_data = np.zeros_like(t_data)\n",
    "n_inc = t_data.shape[0]\n",
    "for i in range (t_data.shape[0]):\n",
    "    x_data[i] = model.xc\n",
    "    y_data[i] = model.yc\n",
    "    if i < n_inc / 8:\n",
    "        if model.delta < np.arctan(ref_delta):\n",
    "            model.step(v_data[i], model.w_max)\n",
    "            w_data[i] = model.w_max\n",
    "        else:\n",
    "            model.step(v_data[i], 0)\n",
    "    elif i < n_inc / 8 * 5:\n",
    "        if model.delta > - np.arctan(ref_delta):\n",
    "            model.step(v_data[i], -model.w_max)\n",
    "            w_data[i] = -model.w_max\n",
    "        else:\n",
    "            model.step(v_data[i], 0)\n",
    "    else:\n",
    "        if model.delta < np.arctan(ref_delta):\n",
    "            model.step(v_data[i], model.w_max)\n",
    "            w_data[i] = model.w_max\n",
    "        else:\n",
    "            model.step(v_data[i], 0)\n",
    "    model.beta = 0\n",
    "plt.axis('equal')\n",
    "plt.plot(x_data, y_data)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will now run your speed and angular rate inputs through our bicycle model solution. This is to ensure that your trajectory is correct along with your model. The cell below will display the path generated by our model along with some waypoints on a desired figure 8. Surrounding these waypoints are error tolerance circles with radius 1.5m, your solution will pass the grader if the trajectory generated stays within 80% of these circles."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Assessment passed! Your trajectory meets 97.5% of the waypoints.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "grade_bicycle(t_data,v_data,w_data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "The cell below will save the time and vehicle inputs as text file named $\\textit{figure8.txt}$. To locate the file, change the end of your web directory to $\\textit{/notebooks/Course_1_Module_4/figure8.txt}$\n",
    "\n",
    "Once you are there, you can download the file and submit to the Coursera grader to complete this assessment."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = np.vstack([t_data, v_data, w_data]).T\n",
    "np.savetxt('figure8.txt', data, delimiter=', ')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Congratulations! You have now completed the assessment! Feel free to test the bicycle model with different inputs in the cell below, and see what trajectories they form. For example, try moving in an equilateral triangle. You'll find that it's rather difficult to generate desired trajectories by pre-setting the inputs. The next module on vehicle control will show you an easier and more accurate method. See you there!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sample_time = 0.01\n",
    "time_end = 30\n",
    "model.reset()\n",
    "\n",
    "t_data = np.arange(0,time_end,sample_time)\n",
    "x_data = np.zeros_like(t_data)\n",
    "y_data = np.zeros_like(t_data)\n",
    "v_data = np.zeros_like(t_data)\n",
    "w_data = np.zeros_like(t_data)\n",
    "\n",
    "# ==================================\n",
    "#  Test various inputs here\n",
    "# ==================================\n",
    "for i in range(t_data.shape[0]):\n",
    "\n",
    "    model.step(v_data[i], w_data[i])\n",
    "    \n",
    "plt.axis('equal')\n",
    "plt.plot(x_data, y_data)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
